package com.cicadamob.contact.api.http.dao;

import java.util.ArrayList;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.cicadamob.contact.api.http.bean.AssetCardEdit;
import com.gmccgz.im.sdk.http.bean.MaxPostIdAndTypeId;
import com.gmccgz.im.sdk.http.bean.MediaUpDetail;
import com.gmccgz.im.sdk.http.bean.ParaIntStr;
import com.gmccgz.im.sdk.http.bean.TypeAndId;

/**
 * 帖子
 * 
 * @author wjj
 * 
 */
public class PersonPostsRequest {

	private static final String MESSAGE_HEAD = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
	private static final String BR = "\n";

	/**
	 * 发布帖子
	 * 
	 * @param fromid
	 * @param imsi
	 * @param imei
	 * @param token
	 * @param messageId
	 * @param id
	 *            ：跟类型相对应，可为群组号或者企业编号
	 * @param type
	 *            ： 0：公开 1：群组 2：企业
	 * @param listMeida媒体id列表
	 * @param contentType
	 *            内容类型
	 * @return
	 * @throws JSONException
	 */
	public static String publishPost(String fromid, String imsi, String imei,
			String token, String messageId, String id, int type, String title,
			String text, ArrayList<String> listMeidaId, int contentType,
			String name, String address, String X, String Y)
			throws JSONException {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;

		String to = getToStr(id, type);
		JSONObject jsonCon = new JSONObject();
		JSONArray jsonArrMedia = new JSONArray();
		int len = listMeidaId.size();

		jsonCon.put("title", title);
		jsonCon.put("text", text);
		for (int i = 0; i < len; i++) {
			jsonArrMedia.put(i, listMeidaId.get(i));
		}
		jsonCon.put("media", jsonArrMedia);

		String content = jsonCon.toString();

		StringBuilder sbLoc = new StringBuilder();
		sbLoc.append(address);
		sbLoc.append("&");
		sbLoc.append(X);
		sbLoc.append("&");
		sbLoc.append(Y);

		String location = sbLoc.toString();

		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<to>");
		sb.append(to);
		sb.append("</to>");
		sb.append(BR);

		sb.append("<content>");
		sb.append(content);
		sb.append("</content>");
		sb.append(BR);

		sb.append("<type>");
		sb.append(contentType);
		sb.append("</type>");
		sb.append(BR);

		sb.append("<location>");
		sb.append(location == null ? "" : location);
		sb.append("</location>");
		sb.append(BR);

		sb.append("<name>");
		sb.append(name == null ? "" : name);
		sb.append("</name>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 目的地，包括目的地id和类型，格式为return。 id：跟类型相对应，可为群组号或者企业编号. type： 1：群组 2：企业
	 * 
	 * @param id
	 * @param type
	 * @return type:TYPE,id:ID
	 */
	private static String getToStr(String id, int type) {
		String to = "type:" + type + ",id:" + id;
		return to;
	}

	/**
	 * 发布帖子2
	 * 
	 * @param fromid
	 * @param imsi
	 * @param imei
	 * @param token
	 * @param messageId
	 * @param id
	 *            ：跟类型相对应，可为群组号或者企业编号
	 * @param type
	 *            ： 0：公开 1：群组 2：企业
	 * @param listMeida
	 *            媒体id列表
	 * @param postType
	 *            帖子类型
	 * 
	 *            格式：<content>
	 *            {“title”:”TITLE”,”text”:”TEXT”,”media”:[{"id":“mediaId1
	 *            ”,"type"
	 *            :TYPE,"name":"NAME"},{"id":“mediaId2”,"type":TYPE2,"name"
	 *            :"NAME2"}]} </content>
	 * 
	 * 
	 * @return
	 * 
	 */
	public static String publishPost2(String fromid, String imsi, String imei,
			String token, String messageId, String id, int type, String title,
			String text, ArrayList<MediaUpDetail> listMeida, int postType,
			String name, String address, String X, String Y) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;

		String to = getToStr(id, type);

		String content = getContent(title, text, listMeida);

		StringBuilder sbLoc = new StringBuilder();
		sbLoc.append(address);
		sbLoc.append("||");
		sbLoc.append(X);
		sbLoc.append("||");
		sbLoc.append(Y);

		String location = sbLoc.toString();

		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<to>");
		sb.append(to);
		sb.append("</to>");
		sb.append(BR);

		sb.append("<content>");
		sb.append(content);
		sb.append("</content>");
		sb.append(BR);

		sb.append("<type>");
		sb.append(postType);
		sb.append("</type>");
		sb.append(BR);

		sb.append("<location>");
		sb.append(location == null ? "" : location);
		sb.append("</location>");
		sb.append(BR);

		sb.append("<name>");
		sb.append(name == null ? "" : name);
		sb.append("</name>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 新增内容分类
	 * 
	 * @param id
	 *            ：跟类型相对应，可为群组号或者企业编号;
	 * @param type
	 *            ： 1：群组 2：企业;
	 */

	public static String addContentType(String fromid, String imsi,
			String imei, String token, String messageId, String id, int type,
			int classify, String mediaId, String name, String description,
			String creator) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;

		String to = getToStr(id, type);

		// StringBuilder sbb = new StringBuilder();
		// sbb.append("{\"name\":");
		// sbb.append("\"");
		// sbb.append(name);
		// sbb.append("\"");
		// sbb.append(",\"description\":");
		// sbb.append("\"");
		// sbb.append(description);
		// sbb.append("\"");
		// sbb.append(",\"mediaId\":");
		// sbb.append("\"");
		// sbb.append(mediaId);
		// sbb.append("\"");
		//
		// sbb.append("}");

		ArrayList<MediaUpDetail> listMeida = new ArrayList<MediaUpDetail>();
		// MediaUpDetail mediaUpDetail = new MediaUpDetail();
		// mediaUpDetail.setmName(name);//name
		// mediaUpDetail.setmDetail(description);
		// mediaUpDetail.setmId(mediaId);
		// listMeida.add(mediaUpDetail);

		String content = getContent(name, description, listMeida);

		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<to>");
		sb.append(to);
		sb.append("</to>");
		sb.append(BR);

		sb.append("<content>");
		sb.append(content);
		sb.append("</content>");
		sb.append(BR);

		sb.append("<classify>");
		sb.append(classify);
		sb.append("</classify>");
		sb.append(BR);

		sb.append("<creator>");
		sb.append(creator);
		sb.append("</creator>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 查询内容分类
	 * 
	 * @param id
	 *            ：跟类型相对应，可为群组号或者企业编号;
	 * @param type
	 *            ： 1：群组 2：企业;
	 * 
	 * @param postType
	 *            int 是 待查询的类型，如果取值为（-1），则代表查询参数“to”所指范围内所有的类型。
	 */

	public static String queryContentType(String fromid, String imsi,
			String imei, String token, String messageId, String id, int type,
			int postType, int classify) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;

		String to = getToStr(id, type);

		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<to>");
		sb.append(to);
		sb.append("</to>");
		sb.append(BR);

		sb.append("<classify>");
		sb.append(classify);
		sb.append("</classify>");
		sb.append(BR);

		sb.append("<type>");
		if (postType == -1) {
			// 不加type值，表示全部
		} else {
			sb.append(postType);
		}
		sb.append("</type>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 修改内容分类
	 * 
	 * 
	 * @param type
	 *            ：待修改的类型
	 */

	public static String modifyContentType(String fromid, String imsi,
			String imei, String token, String messageId, int type,
			String mediaId, String name, String description) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;

		// int len = listMeidaId.size();

		// StringBuilder sbb = new StringBuilder();
		// sbb.append("{\"name\":");
		// sbb.append("\"");
		// sbb.append(name);
		// sbb.append("\"");
		// sbb.append(",\"description\":");
		// sbb.append("\"");
		// sbb.append(description);
		// sbb.append("\"");
		// sbb.append(",\"mediaId\":");
		// sbb.append("\"");
		// sbb.append(mediaId);
		// sbb.append("\"");
		//
		// sbb.append("}");
		//
		// String content = sbb.toString();

		ArrayList<MediaUpDetail> listMeida = new ArrayList<MediaUpDetail>();
		MediaUpDetail mediaUpDetail = new MediaUpDetail();
		mediaUpDetail.setmName(name);
		mediaUpDetail.setmDetail(description);
		mediaUpDetail.setmId(mediaId);
		listMeida.add(mediaUpDetail);

		String content = getContent(name, description, listMeida);

		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<type>");
		sb.append(type);
		sb.append("</type>");
		sb.append(BR);

		sb.append("<content>");
		sb.append(content);
		sb.append("</content>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 删除内容分类
	 * 
	 * 
	 * @param type
	 *            分类的id
	 * 
	 */

	public static String deleteContentType(String fromid, String imsi,
			String imei, String token, String messageId, int type) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;

		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<type>");
		sb.append(type);
		sb.append("</type>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 获取帖子列表
	 * 
	 * 
	 * @param postType获取帖子的类型
	 *            ，如果取值为空则代表取所有的帖子。 取值范围如下： 1：通知 2：产品推介 3：竞争情报。
	 * @param page
	 *            页数，获取第几页
	 * @param count
	 *            每页返回记录数
	 * 
	 * @return
	 */
	public static String getPostList(String fromid, String imsi, String imei,
			String token, String messageId, int postType, int count, int page,
			String id, int type, String userId, int OPType) {

		String to = getToStr(id, type);

		// {“userId”:”MOBILE”,”OPType”:"OPType"}

		String specify = getSpecify(userId, OPType);

		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;

		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);

		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<to>");
		sb.append(to);
		sb.append("</to>");
		sb.append(BR);

		sb.append("<type>");
		if (postType == -1) {
			// 不加type值，表示全部
		} else {
			sb.append(postType);
		}
		sb.append("</type>");
		sb.append(BR);

		sb.append("<specify>");
		sb.append(specify);
		sb.append("</specify>");
		sb.append(BR);

		sb.append("<page>");
		sb.append(page);
		sb.append("</page>");
		sb.append(BR);

		sb.append("<count>");
		sb.append(count);
		sb.append("</count>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	private static String getSpecify(String userId, int OPType) {
		StringBuilder sbd = new StringBuilder();
		sbd.append("{\"userId\":\"");
		sbd.append(userId);
		sbd.append("\",\"opType\":\"");
		sbd.append(OPType);
		sbd.append("\"}");
		return sbd.toString();
	}

	/**
	 * 获取帖子列表
	 * 
	 * 
	 * @param postType获取帖子的类型
	 *            ，如果取值为空则代表取所有的帖子。 取值范围如下： 1：通知 2：产品推介 3：竞争情报。
	 * @param page
	 *            页数，获取第几页
	 * @param count
	 *            每页返回记录数
	 * 
	 * @return
	 */
	public static String getPostList(String fromid, String imsi, String imei,
			String token, String messageId, int postType, int count, int page,
			String id, int type) {

		String to = getToStr(id, type);

		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;

		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);

		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<to>");
		sb.append(to);
		sb.append("</to>");
		sb.append(BR);

		sb.append("<type>");
		if (postType == -1) {
			// 不加type值，表示全部
		} else {
			sb.append(postType);
		}
		sb.append("</type>");
		sb.append(BR);

		sb.append("<page>");
		sb.append(page);
		sb.append("</page>");
		sb.append(BR);

		sb.append("<count>");
		sb.append(count);
		sb.append("</count>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 发布资产
	 * 
	 * @param fromid
	 * @param imsi
	 * @param imei
	 * @param token
	 * @param messageId
	 * @param id
	 *            ：跟类型相对应，可为群组号或者企业编号
	 * @param type
	 *            ： 0：公开 1：群组 2：企业
	 * @param listMeida
	 *            媒体id列表
	 * @param contentType
	 *            内容类型
	 * 
	 *            格式：<content>
	 *            {“title”:”TITLE”,”text”:”TEXT”,”media”:[{"id":“mediaId1
	 *            ”,"type"
	 *            :TYPE,"name":"NAME"},{"id":“mediaId2”,"type":TYPE2,"name"
	 *            :"NAME2"}]} </content>
	 * 
	 * @param location
	 *            资产位置，包括经纬度，格式为：address||X||Y
	 * 
	 * @param assetLoc
	 *            发布人位置，包括地址和经纬度，格式为：address||X||Y，默认获取用户当前位置
	 * 
	 * @return
	 * 
	 */
	public static String publishAsset(String fromid, String imsi, String imei,
			String token, String messageId, String id, int type, String title,
			String text, ArrayList<MediaUpDetail> listMeida,
			String contentType, String name, String location, String assetLoc,
			ParaIntStr pis) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;

		String to = getToStr(id, type);

		String content = getContent(title, text, listMeida);

		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<to>");
		sb.append(to);
		sb.append("</to>");
		sb.append(BR);

		sb.append("<content>");
		sb.append(content);
		sb.append("</content>");
		sb.append(BR);

		sb.append("<type>");
		sb.append(contentType);
		sb.append("</type>");
		sb.append(BR);

		sb.append("<assetLoc>");
		sb.append(assetLoc == null ? "" : assetLoc);
		sb.append("</assetLoc>");
		sb.append(BR);

		sb.append("<location>");
		sb.append(location == null ? "" : location);
		sb.append("</location>");
		sb.append(BR);

		sb.append("<name>");
		sb.append(name == null ? "" : name);
		sb.append("</name>");
		sb.append(BR);

		getParaIntStr(pis, sb);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 编辑资产
	 * 
	 * @param fromid
	 * @param imsi
	 * @param imei
	 * @param postId
	 *            资产id
	 * @param messageId
	 * @param id
	 *            ：跟类型相对应，可为群组号或者企业编号
	 * @param type
	 *            ： 0：公开 1：群组 2：企业
	 * @param listMeida
	 *            媒体id列表
	 * @param contentType
	 *            内容类型
	 * 
	 *            格式：<content>
	 *            {“title”:”TITLE”,”text”:”TEXT”,”media”:[{"id":“mediaId1
	 *            ”,"type"
	 *            :TYPE,"name":"NAME"},{"id":“mediaId2”,"type":TYPE2,"name"
	 *            :"NAME2"}]} </content>
	 * 
	 * @param location
	 *            资产位置，包括经纬度，格式为：address||X||Y
	 * 
	 * @param assetLoc
	 *            发布人位置，包括地址和经纬度，格式为：address||X||Y，默认获取用户当前位置
	 * 
	 * @return
	 * 
	 */
	public static String editAsset(String fromid, String imsi, String imei,
			String token, String messageId, String id, int type, String title,
			String postId, String text, ArrayList<MediaUpDetail> listMeida,
			String contentType, String otherJsonStr, String location,
			String assetLoc, String homepage, ParaIntStr pis) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;

		String to = getToStr(id, type);

		String content = getContent(title, text, listMeida);

		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<to>");
		sb.append(to);
		sb.append("</to>");
		sb.append(BR);

		sb.append("<postId>");
		sb.append(postId);
		sb.append("</postId>");
		sb.append(BR);

		sb.append("<content>");
		sb.append(content);
		sb.append("</content>");
		sb.append(BR);

		sb.append("<type>");
		sb.append(contentType);
		sb.append("</type>");
		sb.append(BR);

		sb.append("<assetLoc>");
		sb.append(assetLoc == null ? "" : assetLoc);
		sb.append("</assetLoc>");
		sb.append(BR);

		sb.append("<location>");
		sb.append(location == null ? "" : location);
		sb.append("</location>");
		sb.append(BR);

		sb.append("<homepage>");
		sb.append(homepage == null ? "" : homepage);
		sb.append("</homepage>");
		sb.append(BR);

		sb.append("<other>");
		sb.append(otherJsonStr == null ? "" : otherJsonStr);
		sb.append("</other>");
		sb.append(BR);

		getParaIntStr(pis, sb);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}
	
	
	public static String editAssetBean(AssetCardEdit ace) {
		
		
//		String fromid, String imsi, String imei,
//		String token, String messageId, String id, int type, String title,
//		String postId, String text, ArrayList<MediaUpDetail> listMeida,
//		String contentType, String otherJsonStr, String location,
//		String assetLoc, String homepage, ParaIntStr pis
		String signatureValue = "fromid:" + ace.getFromid() + ",imsi:" + ace.getImsi() + ",imei:"
				+ ace.getImei() + ",token:" + ace.getToken();

		String to = getToStr(ace.getId(), ace.getType());

		String content = getContent(ace.getTitle(), ace.getText(), ace.getListMeida());

		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(ace.getMessageId() == null ? "" : ace.getMessageId());
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<to>");
		sb.append(to);
		sb.append("</to>");
		sb.append(BR);

		sb.append("<postId>");
		sb.append(ace.getPostId());
		sb.append("</postId>");
		sb.append(BR);

		sb.append("<content>");
		sb.append(content);
		sb.append("</content>");
		sb.append(BR);

		sb.append("<type>");
		sb.append(ace.getContentType());
		sb.append("</type>");
		sb.append(BR);

		sb.append("<assetLoc>");
		sb.append(ace.getAssetLoc() == null ? "" : ace.getAssetLoc());
		sb.append("</assetLoc>");
		sb.append(BR);

		sb.append("<location>");
		sb.append(ace.getLocation() == null ? "" : ace.getLocation());
		sb.append("</location>");
		sb.append(BR);

		sb.append("<homepage>");
		sb.append(ace.getHomepage() == null ? "" : ace.getHomepage());
		sb.append("</homepage>");
		sb.append(BR);

		sb.append("<other>");
		sb.append(ace.getOtherJsonStr() == null ? "" : ace.getOtherJsonStr());
		sb.append("</other>");
		sb.append(BR);

		getParaIntStr(ace.getPis(), sb);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 编辑内容分类
	 * 
	 * @param fromid
	 * @param imsi
	 * @param imei
	 * @param messageId
	 * @param id
	 *            ：跟类型相对应，可为群组号或者企业编号
	 * @param type
	 *            编辑的类型int
	 * 
	 * @param listMeida
	 *            媒体id列表
	 * @param contentType
	 *            内容类型
	 * 
	 *            格式：<content>
	 *            {“title”:”TITLE”,”text”:”TEXT”,”media”:[{"id":“mediaId1
	 *            ”,"type"
	 *            :TYPE,"name":"NAME"},{"id":“mediaId2”,"type":TYPE2,"name"
	 *            :"NAME2"}]} </content>
	 * 
	 * @param location
	 *            资产位置，包括经纬度，格式为：address||X||Y
	 * 
	 * @param assetLoc
	 *            发布人位置，包括地址和经纬度，格式为：address||X||Y，默认获取用户当前位置
	 * 
	 * @return
	 * 
	 */
	public static String editContentType(String fromid, String imsi,
			String imei, String token, String messageId, int cardType,
			String title, String text, ArrayList<MediaUpDetail> listMeida,
			String homepage, String otherJsonStr, int classify, String id,
			int type, String location, ParaIntStr pis) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;

		String content = getContent(title, text, listMeida);

		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<to>");
		sb.append(getToStr(id, type));
		sb.append("</to>");
		sb.append(BR);

		sb.append("<classify>");
		sb.append(classify);
		sb.append("</classify>");
		sb.append(BR);

		sb.append("<type>");
		sb.append(cardType);
		sb.append("</type>");
		sb.append(BR);

		sb.append("<content>");
		sb.append(content);
		sb.append("</content>");
		sb.append(BR);

		sb.append("<homepage>");
		sb.append(homepage == null ? "" : homepage);
		sb.append("</homepage>");
		sb.append(BR);

		sb.append("<location>");
		sb.append(location == null ? "" : location);
		sb.append("</location>");
		sb.append(BR);

		sb.append("<other>");
		sb.append(otherJsonStr == null ? "" : otherJsonStr);
		sb.append("</other>");
		sb.append(BR);

		getParaIntStr(pis, sb);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 拼凑请求的自定义参数 ：para_int_n， Para_str_n
	 * 
	 * @param pis
	 * @param sb
	 */
	private static void getParaIntStr(ParaIntStr pis, StringBuilder sb) {
		if (pis != null) {

			ArrayList<Integer> listParaInt = new ArrayList<Integer>();
			ArrayList<String> listParaStr = new ArrayList<String>();

			int para_int_1 = pis.getPara_int_1();
			int para_int_2 = pis.getPara_int_2();
			int para_int_3 = pis.getPara_int_3();
			int para_int_4 = pis.getPara_int_4();
			int para_int_5 = pis.getPara_int_5();
			int para_int_6 = pis.getPara_int_6();
			int para_int_7 = pis.getPara_int_7();
			int para_int_8 = pis.getPara_int_8();
			int para_int_9 = pis.getPara_int_9();
			int para_int_10 = pis.getPara_int_10();

			listParaInt.add(para_int_1);
			listParaInt.add(para_int_2);
			listParaInt.add(para_int_3);
			listParaInt.add(para_int_4);
			listParaInt.add(para_int_5);
			listParaInt.add(para_int_6);
			listParaInt.add(para_int_7);
			listParaInt.add(para_int_8);
			listParaInt.add(para_int_9);
			listParaInt.add(para_int_10);

			listParaStr.add(pis.getPara_str_1());
			listParaStr.add(pis.getPara_str_2());
			listParaStr.add(pis.getPara_str_3());
			listParaStr.add(pis.getPara_str_4());
			listParaStr.add(pis.getPara_str_5());
			listParaStr.add(pis.getPara_str_6());
			listParaStr.add(pis.getPara_str_7());
			listParaStr.add(pis.getPara_str_8());
			listParaStr.add(pis.getPara_str_9());
			listParaStr.add(pis.getPara_str_10());
			listParaStr.add(pis.getPara_str_11());
			listParaStr.add(pis.getPara_str_12());
			listParaStr.add(pis.getPara_str_13());
			listParaStr.add(pis.getPara_str_14());
			listParaStr.add(pis.getPara_str_15());

			for (int i = 0; i < listParaInt.size(); i++) {
				if (listParaInt.get(i) != ParaIntStr.impossibleNum) {
					sb.append("<para_int_" + (i + 1) + ">");
					sb.append(listParaInt.get(i));
					sb.append("</para_int_" + (i + 1) + ">");
					sb.append(BR);
				}

			}

			for (int i = 0; i < listParaStr.size(); i++) {
				if (listParaStr.get(i) != null) {
					sb.append("<para_str_" + (i + 1) + ">");
					sb.append(listParaStr.get(i));
					sb.append("</para_str_" + (i + 1) + ">");
					sb.append(BR);
				}
			}

		}

	}

	/**
	 * 4.7 设置内容分类权限
	 * 
	 * @param fromid
	 * @param imsi
	 * @param imei
	 * @param token
	 * @param messageId
	 * @param type
	 * @param listAdmin
	 * @param listWriting
	 * @param listReading
	 * @return
	 */
	public static String setContentTypeRight(String fromid, String imsi,
			String imei, String token, String messageId, int type,
			ArrayList<TypeAndId> listAdmin, ArrayList<TypeAndId> listWriting,
			ArrayList<TypeAndId> listReading) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;

		String right = getRight3(listAdmin, listWriting, listReading);

		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<type>");
		sb.append(type);
		sb.append("</type>");
		sb.append(BR);

		sb.append("<right>");
		sb.append(right);
		sb.append("</right>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	public static String setContentTypeRightAdmin(String fromid, String imsi,
			String imei, String token, String messageId, int type,
			ArrayList<TypeAndId> listAdmin) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;

		String right = getRight(listAdmin, "admin");

		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<type>");
		sb.append(type);
		sb.append("</type>");
		sb.append(BR);

		sb.append("<right>");
		sb.append(right);
		sb.append("</right>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	public static String setContentTypeRightWriting(String fromid, String imsi,
			String imei, String token, String messageId, int type,
			ArrayList<TypeAndId> listWriting) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;

		String right = getRight(listWriting, "writing");

		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<type>");
		sb.append(type);
		sb.append("</type>");
		sb.append(BR);

		sb.append("<right>");
		sb.append(right);
		sb.append("</right>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	public static String setContentTypeRightReading(String fromid, String imsi,
			String imei, String token, String messageId, int type,
			ArrayList<TypeAndId> listReading) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;

		String right = getRight(listReading, "reading");

		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<type>");
		sb.append(type);
		sb.append("</type>");
		sb.append(BR);

		sb.append("<right>");
		sb.append(right);
		sb.append("</right>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	private static String getRight(ArrayList<TypeAndId> list, String str) {

		int len = list.size();

		StringBuilder sbb = new StringBuilder();

		// String str="reading";

		sbb.append("{\"" + str + "\":[");
		if (len == 0) {
			sbb.append("]");
		} else {

			for (int i = 0; i < len; i++) {
				sbb.append("{\"type\":");
				sbb.append("\"");
				sbb.append(list.get(i).getType());
				sbb.append("\",");
				sbb.append("\"id\":");
				sbb.append("\"");
				sbb.append(list.get(i).getId());
				sbb.append("\"}");
				if (i == (len - 1)) {
					sbb.append("]");
				} else {
					sbb.append(",");
				}
			}
		}
		sbb.append("}");

		return sbb.toString();
	}

	private static String getRight3(ArrayList<TypeAndId> listAdmin,
			ArrayList<TypeAndId> listWriting, ArrayList<TypeAndId> listReading) {

		int lenAdmin = listAdmin.size();
		int lenWriting = listWriting.size();
		int lenReading = listReading.size();

		StringBuilder sbb = new StringBuilder();

		sbb.append("{\"admin\":[");
		if (lenAdmin == 0) {
			sbb.append("],");
		} else {
			for (int i = 0; i < lenAdmin; i++) {
				sbb.append("{\"type\":");
				sbb.append("\"");
				sbb.append(listAdmin.get(i).getType());
				sbb.append("\",");
				sbb.append("\"id\":");
				sbb.append("\"");
				sbb.append(listAdmin.get(i).getId());
				sbb.append("\"}");
				if (i == (lenAdmin - 1)) {
					sbb.append("],");
				} else {
					sbb.append(",");

				}

			}

		}

		sbb.append("\"writing\":[");
		if (lenWriting == 0) {
			sbb.append("],");
		} else {
			for (int i = 0; i < lenWriting; i++) {
				sbb.append("{\"type\":");
				sbb.append("\"");
				sbb.append(listWriting.get(i).getType());
				sbb.append("\",");
				sbb.append("\"id\":");
				sbb.append("\"");
				sbb.append(listWriting.get(i).getId());
				sbb.append("\"}");
				if (i == (lenWriting - 1)) {
					sbb.append("],");
				} else {
					sbb.append(",");
				}
			}

		}

		sbb.append("\"reading\":[");
		if (lenReading == 0) {
			sbb.append("]");
		} else {

			for (int i = 0; i < lenReading; i++) {
				sbb.append("{\"type\":");
				sbb.append("\"");
				sbb.append(listReading.get(i).getType());
				sbb.append("\",");
				sbb.append("\"id\":");
				sbb.append("\"");
				sbb.append(listReading.get(i).getId());
				sbb.append("\"}");
				if (i == (lenReading - 1)) {
					sbb.append("]");
				} else {
					sbb.append(",");
				}
			}
		}
		sbb.append("}");

		return sbb.toString();
	}

	/**
	 * 返回如此字符串：{“title”:”TITLE”,”text”:”TEXT”,”media”:[“mediaId1”,”mediaId2”]}
	 */
	private static String getContent(String title, String text,
			ArrayList<MediaUpDetail> listMeida) {
		int len = listMeida.size();

		StringBuilder sbb = new StringBuilder();
		sbb.append("{\"title\":");
		sbb.append("\"");
		sbb.append(title);
		sbb.append("\"");
		sbb.append(",\"text\":");
		sbb.append("\"");
		sbb.append(text);
		sbb.append("\"");
		sbb.append(",\"media\":[");
		for (int i = 0; i < len; i++) {
			sbb.append("{\"mId\":");
			sbb.append("\"");
			sbb.append(listMeida.get(i).getmId());
			sbb.append("\",");
			sbb.append("\"mName\":");
			sbb.append("\"");
			sbb.append(listMeida.get(i).getmName());
			sbb.append("\",");
			sbb.append("\"mDetail\":");
			sbb.append("\"");
			sbb.append(listMeida.get(i).getmDetail());
			sbb.append("\",");
			sbb.append("\"mType\":");
			sbb.append("\"");
			sbb.append(listMeida.get(i).getmType());
			sbb.append("\"}");
			if (i == (len - 1)) {
				// do nothing
			} else {
				sbb.append(",");
			}
		}

		sbb.append("]}");
		String content = sbb.toString();
		return content;
	}

	/**
	 * 获取资产列表
	 * 
	 * 
	 * @param contentType获取内容的类型
	 *            ，如果取值为空则代表取所有的帖子。 取值范围如下： 1：通知 2：产品推介 3：竞争情报。
	 * @param location
	 *            用户当前位置，包括地址和经纬度，格式为：address||X||Y
	 * @param radius
	 *            指定获取的资产半径，如果不指定，则默认按资产发布时间倒叙获取资产
	 * 
	 * @return
	 */
	public static String getAssetList(String fromid, String imsi, String imei,
			String token, String messageId, int contentType, String location,
			int radius, int count, int page, String returnPara,
			String queryCond, String id, int type) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;
		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		String to = getToStr(id, type);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<type>");
		if (contentType == -1) {
			// 不加type值，表示全部
		} else {
			sb.append(contentType);
		}

		// sb.append(type==0?null:type);
		sb.append("</type>");
		sb.append(BR);

		sb.append("<location>");
		sb.append(location);
		sb.append("</location>");
		sb.append(BR);

		sb.append("<to>");
		sb.append(to);
		sb.append("</to>");
		sb.append(BR);

		sb.append("<radius>");
		if (radius == -1) {
			// 不加type值，表示全部
		} else {
			sb.append(radius);
		}
		sb.append("</radius>");
		sb.append(BR);

		sb.append("<page>");
		sb.append(page);
		sb.append("</page>");
		sb.append(BR);

		sb.append("<count>");
		sb.append(count);
		sb.append("</count>");
		sb.append(BR);

		sb.append("<returnPara>");
		sb.append(returnPara == null ? "" : returnPara);
		sb.append("</returnPara>");
		sb.append(BR);

		sb.append("<queryCond>");
		sb.append(queryCond == null ? "" : queryCond);
		sb.append("</queryCond>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 获取资产列表
	 * 
	 * 
	 * @param contentType获取内容的类型
	 *            ，如果取值为空则代表取所有的帖子。 取值范围如下： 1：通知 2：产品推介 3：竞争情报。
	 * @param location
	 *            用户当前位置，包括地址和经纬度，格式为：address||X||Y
	 * @param radius
	 *            指定获取的资产半径，如果不指定，则默认按资产发布时间倒叙获取资产
	 * 
	 * @return
	 */
	public static String getAssetListWithSpecify(String fromid, String imsi,
			String imei, String token, String messageId, int contentType,
			String location, int radius, int count, int page,
			String returnPara, String queryCond, String id, int type,
			String userId, int OPType) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;
		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		String to = getToStr(id, type);
		String specify = getSpecify(userId, OPType);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<type>");
		if (contentType == -1) {
			// 不加type值，表示全部
		} else {
			sb.append(contentType);
		}

		// sb.append(type==0?null:type);
		sb.append("</type>");
		sb.append(BR);

		sb.append("<location>");
		sb.append(location);
		sb.append("</location>");
		sb.append(BR);

		sb.append("<to>");
		sb.append(to);
		sb.append("</to>");
		sb.append(BR);

		sb.append("<specify>");
		sb.append(specify);
		sb.append("</specify>");
		sb.append(BR);

		sb.append("<radius>");
		if (radius == -1) {
			// 不加type值，表示全部
		} else {
			sb.append(radius);
		}
		sb.append("</radius>");
		sb.append(BR);

		sb.append("<page>");
		sb.append(page);
		sb.append("</page>");
		sb.append(BR);

		sb.append("<count>");
		sb.append(count);
		sb.append("</count>");
		sb.append(BR);

		sb.append("<returnPara>");
		sb.append(returnPara == null ? "" : returnPara);
		sb.append("</returnPara>");
		sb.append(BR);

		sb.append("<queryCond>");
		sb.append(queryCond == null ? "" : queryCond);
		sb.append("</queryCond>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 3.10 获取资产简洁版
	 * 
	 * 
	 * @param contentType获取内容的类型
	 *            ，如果取值为空则代表取所有的帖子。 取值范围如下： 1：通知 2：产品推介 3：竞争情报。
	 * @param location
	 *            用户当前位置，包括地址和经纬度，格式为：address||X||Y
	 * @param radius
	 *            指定获取的资产半径，如果不指定，则默认按资产发布时间倒叙获取资产
	 * 
	 * @return
	 */
	public static String getAssetListBrief(String fromid, String imsi,
			String imei, String token, String messageId, int contentType,
			String location, int radius, int number,String returnPara,String queryCond) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;
		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<type>");
		if (contentType == -1) {
			// 不加type值，表示全部
		} else {
			sb.append(contentType);
		}

		// sb.append(type==0?null:type);
		sb.append("</type>");
		sb.append(BR);

		sb.append("<location>");
		sb.append(location);
		sb.append("</location>");
		sb.append(BR);

		sb.append("<radius>");
		if (radius == -1) {
			// 不加type值，表示全部
		} else {
			sb.append(radius);
		}
		sb.append("</radius>");
		sb.append(BR);

		sb.append("<number>");
		sb.append(number);
		sb.append("</number>");
		sb.append(BR);
		
		sb.append("<returnPara>");
		sb.append(returnPara==null?"":returnPara);
		sb.append("</returnPara>");
		sb.append(BR);
		
		sb.append("<queryCond>");
		sb.append(queryCond==null?"":queryCond);
		sb.append("</queryCond>");
		sb.append(BR);
		

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 发表资产评论
	 * 
	 * @param fromid
	 * @param imsi
	 * @param imei
	 * @param token
	 * @param messageId
	 * @param postId
	 * @param name
	 * @param location
	 * @param text
	 * @param mediaIdList
	 * @return
	 */
	public static String addAssetComment(String fromid, String imsi,
			String imei, String token, String messageId, String postId,
			String name, String location, String text,
			ArrayList<MediaUpDetail> listMeida) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;

		int len = listMeida.size();
		StringBuilder sbb = new StringBuilder();
		sbb.append("{\"text\":");
		sbb.append("\"");
		sbb.append(text);
		sbb.append("\"");
		sbb.append(",\"media\":[");
		for (int i = 0; i < len; i++) {
			sbb.append("{\"mId\":");
			sbb.append("\"");
			sbb.append(listMeida.get(i).getmId());
			sbb.append("\",");
			sbb.append("\"mName\":");
			sbb.append("\"");
			sbb.append(listMeida.get(i).getmName());
			sbb.append("\",");
			sbb.append("\"mDetail\":");
			sbb.append("\"");
			sbb.append(listMeida.get(i).getmDetail());
			sbb.append("\",");
			sbb.append("\"mType\":");
			sbb.append("\"");
			sbb.append(listMeida.get(i).getmType());
			sbb.append("\"}");
			if (i == (len - 1)) {
				// do nothing
			} else {
				sbb.append(",");
			}
		}

		sbb.append("]}");

		String content = sbb.toString();

		// String content = "{text:”TEXT”,media:[“mediaId1”,”mediaId2”]}";

		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<postId>");
		sb.append(postId == null ? "" : postId);
		sb.append("</postId>");
		sb.append(BR);

		sb.append("<content>");
		sb.append(content);
		sb.append("</content>");
		sb.append(BR);

		sb.append("<location>");
		sb.append(location);
		sb.append("</location>");
		sb.append(BR);

		sb.append("<name>");
		sb.append(name);
		sb.append("</name>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 获取资产详情
	 * 
	 * 
	 * @param postId
	 *            资产id
	 * @param page
	 *            页数，获取第几页
	 * @param count
	 *            每页返回记录数
	 * 
	 * @return
	 */
	public static String getAssetDetail(String fromid, String imsi,
			String imei, String token, String messageId, String location,
			String postId, int count, int page, String returnPara,
			String queryCond) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;
		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<postId>");
		sb.append(postId);
		sb.append("</postId>");
		sb.append(BR);

		sb.append("<location>");
		sb.append(location);
		sb.append("</location>");
		sb.append(BR);

		sb.append("<returnPara>");
		sb.append(returnPara);
		sb.append("</returnPara>");
		sb.append(BR);

		sb.append("<queryCond>");
		sb.append(queryCond);
		sb.append("</queryCond>");
		sb.append(BR);

		sb.append("<page>");
		sb.append(page);
		sb.append("</page>");
		sb.append(BR);

		sb.append("<count>");
		sb.append(count);
		sb.append("</count>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 获取资产评论
	 * 
	 * 
	 * @param postId
	 *            资产id
	 * @param page
	 *            页数，获取第几页
	 * @param count
	 *            每页返回记录数
	 * 
	 * @return
	 */
	public static String getAssetComment(String fromid, String imsi,
			String imei, String token, String messageId, String postId,
			int count, int page) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;
		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<postId>");
		sb.append(postId);
		sb.append("</postId>");
		sb.append(BR);

		sb.append("<page>");
		sb.append(page);
		sb.append("</page>");
		sb.append(BR);

		sb.append("<count>");
		sb.append(count);
		sb.append("</count>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 发表帖子评论
	 * 
	 * @param fromid
	 * @param imsi
	 * @param imei
	 * @param token
	 * @param messageId
	 * @param postId
	 * @param name
	 * @param location
	 * @param text
	 * @param mediaIdList
	 * @return
	 */
	public static String addComment(String fromid, String imsi, String imei,
			String token, String messageId, String postId, String name,
			String address, String X, String Y, String text,
			ArrayList<MediaUpDetail> listMeida) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;

		StringBuilder sbLoc = new StringBuilder();
		sbLoc.append(address);
		sbLoc.append("||");
		sbLoc.append(X);
		sbLoc.append("||");
		sbLoc.append(Y);

		String location = sbLoc.toString();

		int len = listMeida.size();
		StringBuilder sbb = new StringBuilder();
		sbb.append("{\"text\":");
		sbb.append("\"");
		sbb.append(text);
		sbb.append("\"");
		sbb.append(",\"media\":[");
		for (int i = 0; i < len; i++) {
			sbb.append("{\"mId\":");
			sbb.append("\"");
			sbb.append(listMeida.get(i).getmId());
			sbb.append("\",");
			sbb.append("\"mName\":");
			sbb.append("\"");
			sbb.append(listMeida.get(i).getmName());
			sbb.append("\",");
			sbb.append("\"mDetail\":");
			sbb.append("\"");
			sbb.append(listMeida.get(i).getmDetail());
			sbb.append("\",");
			sbb.append("\"mType\":");
			sbb.append("\"");
			sbb.append(listMeida.get(i).getmType());
			sbb.append("\"}");
			if (i == (len - 1)) {
				// do nothing
			} else {
				sbb.append(",");
			}
		}

		sbb.append("]}");

		String content = sbb.toString();

		// String content = "{text:”TEXT”,media:[“mediaId1”,”mediaId2”]}";

		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<postId>");
		sb.append(postId == null ? "" : postId);
		sb.append("</postId>");
		sb.append(BR);

		sb.append("<content>");
		sb.append(content);
		sb.append("</content>");
		sb.append(BR);

		sb.append("<location>");
		sb.append(location);
		sb.append("</location>");
		sb.append(BR);

		sb.append("<name>");
		sb.append(name);
		sb.append("</name>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 获取帖子详情，获取评论
	 * 
	 * 
	 * @param postId
	 *            帖子id
	 * @param page
	 *            页数，获取第几页
	 * @param count
	 *            每页返回记录数
	 * 
	 * @return
	 */
	public static String getPostDetail(String fromid, String imsi, String imei,
			String token, String messageId, String postId, int count, int page) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;
		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<postId>");
		sb.append(postId);
		sb.append("</postId>");
		sb.append(BR);

		sb.append("<page>");
		sb.append(page);
		sb.append("</page>");
		sb.append(BR);

		sb.append("<count>");
		sb.append(count);
		sb.append("</count>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 删除帖子
	 * 
	 * 
	 * @param postId
	 *            帖子id
	 * 
	 * @return
	 */
	public static String deletePost(String fromid, String imsi, String imei,
			String token, String messageId, String postId) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;
		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<postId>");
		sb.append(postId);
		sb.append("</postId>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 删除帖子评论
	 * 
	 * 
	 * @param commentId
	 *            帖子评论id
	 * 
	 * @return
	 */
	public static String deletePostComment(String fromid, String imsi,
			String imei, String token, String messageId, String commentId) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;
		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<commentId>");
		sb.append(commentId);
		sb.append("</commentId>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 4.8 获取分类帖子更新状态
	 * 
	 * @param fromid
	 * @param imsi
	 * @param imei
	 * @param token
	 * @param messageId
	 * @param typeId
	 * @param postId
	 * @return
	 */
	public static String getContentTypeUpdate(String fromid, String imsi,
			String imei, String token, String messageId,
			ArrayList<MaxPostIdAndTypeId> listId) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;

		String target = getContentTypeUpdateTarget(listId);

		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<target>");
		sb.append(target);
		sb.append("</target>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	private static String getContentTypeUpdateTarget(
			ArrayList<MaxPostIdAndTypeId> list) {

		int len = list.size();

		StringBuilder sbb = new StringBuilder();

		// String str="reading";

		sbb.append("[");
		if (len == 0) {
			sbb.append("]");
		} else {

			for (int i = 0; i < len; i++) {
				sbb.append("{\"toType\":");
				sbb.append("\"");
				sbb.append(list.get(i).getToType());
				sbb.append("\",");

				sbb.append("\"toId\":");
				sbb.append("\"");
				sbb.append(list.get(i).getToId());
				sbb.append("\",");

				sbb.append("\"postType\":");
				sbb.append("\"");
				sbb.append(list.get(i).getPostType());
				sbb.append("\",");

				sbb.append("\"maxPostId\":");
				sbb.append("\"");
				sbb.append(list.get(i).getPostId());
				sbb.append("\"}");
				if (i == (len - 1)) {
					sbb.append("]");
				} else {
					sbb.append(",");
				}
			}
		}

		return sbb.toString();
	}

	/**
	 * 2.9 帖子点赞
	 * 
	 * @param fromid
	 * @param imsi
	 * @param imei
	 * @param token
	 * @param messageId
	 * @param praiseId
	 * @return
	 */
	public static String addPostPraiseRequest(String fromid, String imsi,
			String imei, String token, String messageId, String postId,
			String name) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;
		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<postId>");
		sb.append(postId == null ? "" : postId);
		sb.append("</postId>");
		sb.append(BR);

		sb.append("<name>");
		sb.append(name == null ? "" : name);
		sb.append("</name>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 2.9 删除帖子点赞
	 * 
	 * @param fromid
	 * @param imsi
	 * @param imei
	 * @param token
	 * @param messageId
	 * @param praiseId
	 * @return
	 */
	public static String deletePostPraiseRequest(String fromid, String imsi,
			String imei, String token, String messageId, String postId) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;
		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);
		sb.append("<postId>");
		sb.append(postId == null ? "" : postId);
		sb.append("</postId>");
		sb.append(BR);
		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 资产点赞
	 * 
	 * @param fromid
	 * @param imsi
	 * @param imei
	 * @param token
	 * @param messageId
	 * @param praiseId
	 * @return
	 */
	public static String addAssetPraise(String fromid, String imsi,
			String imei, String token, String messageId, String assetId,
			String name) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;
		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<assetId>");
		sb.append(assetId == null ? "" : assetId);
		sb.append("</assetId>");
		sb.append(BR);

		sb.append("<name>");
		sb.append(name == null ? "" : name);
		sb.append("</name>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 获取资产名片
	 * 
	 * @param version
	 *            为空，默认取最新
	 * @return
	 */
	public static String getAssetCard(String fromid, String imsi, String imei,
			String token, String messageId, int type, String id, String postId,
			int version) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;
		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<to>");
		sb.append(getToStr(id, type));
		sb.append("</to>");
		sb.append(BR);

		sb.append("<postId>");
		sb.append(postId);
		sb.append("</postId>");
		sb.append(BR);

		sb.append("<version>");

		if (version == -1) {
			// do nothing
		} else {
			sb.append(version);
		}
		sb.append("</version>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 获取资产名片详情
	 * 
	 * @param version
	 *            为空，默认取最新
	 * @return
	 */
	public static String getAssetCardDetail(String fromid, String imsi,
			String imei, String token, String messageId, int type, String id,
			String postId, int version, String location, String returnPara,
			String queryCond) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;
		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<to>");
		sb.append(getToStr(id, type));
		sb.append("</to>");
		sb.append(BR);

		sb.append("<postId>");
		sb.append(postId);
		sb.append("</postId>");
		sb.append(BR);

		sb.append("<version>");

		if (version == -1) {
			// do nothing
		} else {
			sb.append(version);
		}
		sb.append("</version>");
		sb.append(BR);

		sb.append("<location>");
		sb.append(location);
		sb.append("</location>");
		sb.append(BR);

		sb.append("<returnPara>");
		sb.append(returnPara == null ? "" : returnPara);
		sb.append("</returnPara>");
		sb.append(BR);

		sb.append("<queryCond>");
		sb.append(queryCond == null ? "" : queryCond);
		sb.append("</queryCond>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 获取内容分类名片
	 * 
	 * @param classify
	 *            归属分类。该字段标识所创建的内容类型归属的大类，目前已确定的有： 0：帖子 1：资产（位置） 其它取值待扩展。
	 * 
	 * @param editType
	 *            编辑的类型
	 * 
	 * @param version
	 *            为空，默认取最新
	 * @return
	 */
	public static String getContentTypeCard(String fromid, String imsi,
			String imei, String token, String messageId, int type, String id,
			int classify, int version, int cardType) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;
		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<to>");
		sb.append(getToStr(id, type));
		sb.append("</to>");
		sb.append(BR);

		sb.append("<classify>");
		sb.append(classify);
		sb.append("</classify>");
		sb.append(BR);

		sb.append("<type>");
		sb.append(cardType);
		sb.append("</type>");
		sb.append(BR);

		sb.append("<version>");

		if (version == -1) {
			// do nothing
		} else {
			sb.append(version);
		}
		sb.append("</version>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

	/**
	 * 获取内容分类名片详情
	 * 
	 * @param classify
	 *            归属分类。该字段标识所创建的内容类型归属的大类，目前已确定的有： 0：帖子 1：资产（位置） 其它取值待扩展。
	 * 
	 * @param editType
	 *            编辑的类型
	 * 
	 * @param version
	 *            为空，默认取最新
	 * @return
	 */
	public static String getContentTypeCardDetail(String fromid, String imsi,
			String imei, String token, String messageId, int type, String id,
			int classify, int version, int cardType, String location,
			String returnPara, String queryCond) {
		String signatureValue = "fromid:" + fromid + ",imsi:" + imsi + ",imei:"
				+ imei + ",token:" + token;
		StringBuilder sb = new StringBuilder(MESSAGE_HEAD + BR);
		sb.append("<request>");
		sb.append(BR);

		sb.append("<header>");
		sb.append(BR);
		sb.append("<signature>");
		sb.append(signatureValue);
		sb.append("</signature>");
		sb.append(BR);
		sb.append("<messageId>");
		sb.append(messageId == null ? "" : messageId);
		sb.append("</messageId>");
		sb.append(BR);
		sb.append("</header>");
		sb.append(BR);

		sb.append("<body>");
		sb.append(BR);

		sb.append("<to>");
		sb.append(getToStr(id, type));
		sb.append("</to>");
		sb.append(BR);

		sb.append("<classify>");
		sb.append(classify);
		sb.append("</classify>");
		sb.append(BR);

		sb.append("<type>");
		sb.append(cardType);
		sb.append("</type>");
		sb.append(BR);

		sb.append("<location>");
		sb.append(location);
		sb.append("</location>");
		sb.append(BR);

		sb.append("<returnPara>");
		sb.append(returnPara == null ? "" : returnPara);
		sb.append("</returnPara>");
		sb.append(BR);

		sb.append("<queryCond>");
		sb.append(queryCond == null ? "" : queryCond);
		sb.append("</queryCond>");
		sb.append(BR);

		sb.append("<version>");

		if (version == -1) {
			// do nothing
		} else {
			sb.append(version);
		}
		sb.append("</version>");
		sb.append(BR);

		sb.append("</body>");
		sb.append(BR);

		sb.append("</request>");
		sb.append(BR);
		return sb.toString();
	}

}
